Faits : A. A.a. A._ a travaillé en qualité d'installateur sanitaire et de chauffages au service de la société B._ Sàrl (inscrite au Registre du commerce le 6 octobre 1999. Il est à la fois fondateur, associé-gérant et salarié de cette sàrl, dont il détient 19 des 20 parts sociales. En raison d'une hernie discale, il a été incapable d'exercer sa profession d'installateur à 100 % depuis le 26 octobre 2001, puis à 80 % à compter du 1 er mai 2002. Le 21 août 2002, il s'est annoncé à l'assurance-invalidité, indiquant un revenu mensuel de 8'000 fr. L'Office de l'assurance-invalidité du canton de Fribourg (l'office AI) a pris en charge des mesures de réadaptation, afin que l'assuré puisse modifier son cahier des charges dans son entreprise et conserver une capacité de gain la plus élevée possible. Par décision du 24 novembre 2005, l'office AI lui a alloué une rente entière d'invalidité à compter du 1 er novembre 2002. Le droit à cette prestation a été confirmé en 2007 et en 2010. A.b. Dans le cadre d'une nouvelle révision d'office de la rente initiée en 2013, la doctoresse D._, spécialiste en rhumatologie, médecine physique et réadaptation, médecin au Service médical régional SMR BE/FR/SO, a procédé à un examen de l'assuré le 1 er octobre 2014. Ce dernier lui a déclaré qu'il travaillait à raison de deux à trois heures par jour, plutôt le matin, depuis mars 2006. Son activité consistait à superviser l'activité de l'entreprise et de la clientèle, représenter l'entreprise auprès des clients, établir des mandats, suivre des chantiers, organiser le travail et à contrôler le travail effectué par les ouvriers; il s'occupait également des finances. La doctoresse D._ a constaté une amélioration de l'état rachidien et lombaire, compatible avec une activité d'administrateur à 80 %, sans perte de rendement; l'incapacité résiduelle (20 %) était liée à la nécessité d'économiser le rachis dorso-lombaire qui avait subi diverses opérations et présentait des lésions dégénératives (rapport du 4 novembre 2014). Dans un projet de décision du 19 novembre 2014, l'office AI a fait savoir à l'assuré qu'il envisageait de supprimer la rente au motif qu'il disposait d'une capacité de travail et de gain d'au moins 80 %, de sorte que les conditions du droit au versement de cette prestation n'étaient plus réalisées; le salaire de l'assuré (39'000 fr., soit 3'250 fr. par mois) n'a pas été pris en considération. L'assuré a manifesté son opposition, indiquant qu'il travaillerait trois fois plus sans l'atteinte à la santé (cf. procès-verbal d'objection du 13 janvier 2015). Par décision du 20 janvier 2015, l'office AI a supprimé la rente. B. A._ a déféré cette décision au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, en concluant principalement à son annulation, subsidiairement à la mise en oeuvre d'une expertise destinée à démontrer son incapacité actuelle de gain. La juridiction cantonale l'a débouté par jugement du 19 avril 2016. C. A._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation. A titre principal, il conclut au maintien de la rente entière d'invalidité. A titre subsidiaire, il conclut au renvoi de la cause à la juridiction cantonale.